///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//																													 //
//																													 //
//																													 //
//									PROGRAMME BANQUE V2.0															 //
//																													 //
//																													 //
//																													 //
//																													 //
// Créé par:	Emmanuel Rondez																					 	 //	
//				Benoit Petit																						 //
//				Johann Plug																					 		 //
//				Gary Criblez																						 //
//																					 								 //
//																													 //
//															Version 13.01.2013										 //
//																													 //
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Program Banque;

USES 
	Clients,Comptes,Crt;
	// Ajout Crt pour la fonction ClrScr qui permet d'effacer l'ecran
		
VAR

	choixMenu: CHAR;
	EXIT : boolean;
	ID_Client : INTEGER;
	tabClient : TTabClient;
	ID_Compte : INTEGER;
	IndiceClient:INTEGER;
	IndiceCompte:INTEGER;

begin
	Window(1,1,100,100); // Initialisation fenetre
	//Initialisation Client
	initClient(tabClient);
	addClient(tabClient,'Petit','Benoit','Chemin du Secheron 5','1132','Lully','0796208831','15.05.1991','Monsieur');
	addClient(tabClient,'Plug','Johann','Route de la Plantay 81','1063','Etoy','0792655934','15.11.1991','Monsieur');
	addClient(tabclient,'Rondez','Emmanuel','Bas du Village 12','2536','Plagne','0797759427','07.11.1985','Monsieur');
	addClient(tabclient,'Criblez','Gary','Rue des Musees 34','2300','La Chaux-de-Fonds','0788516230','04.12.1989','Monsieur');
	//initialisation compte 
	addCompte(tabClient.tabclient[1].Comptes,tabClient.DernierIDCompte,'Compte courant',1.5,500,-500);
	addCompte(tabClient.tabclient[1].Comptes,tabClient.DernierIDCompte,'Compte depot',2.5,200,-200);
	addCompte(tabClient.tabclient[2].Comptes,tabClient.DernierIDCompte,'Compte courant',0.5,1500,-300);
	addCompte(tabClient.tabclient[3].Comptes,tabClient.DernierIDCompte,'Compte courant',1.5,20000,-500);
	addCompte(tabClient.tabclient[4].Comptes,tabClient.DernierIDCompte,'Compte depot',2.5,600,-200);
	addCompte(tabClient.tabclient[4].Comptes,tabClient.DernierIDCompte,'Compte courant',0.5,1500,-300);
	// Fin Initialisation Client et compte
	
	

	// Début Programme principal
	EXIT := FALSE;
	WHILE (EXIT = FALSE) DO
		begin
			Window(1,1,100,100);
			ClrScr;
			WRITELN(' ------------------------------------------------------------------------------ ');
			WRITELN('|                                                                              |');
			WRITELN('|                                                                              |');
			WRITELN('|                              PROGRAMME BANQUE                                |');
			WRITELN('|                                                                              |');
			WRITELN('|                                                                              |');
			WRITELN('|                                                                              |');
			WRITELN(' ----------------------------------------------------------------------------- ');	
			WRITELN('                               MENU PRINCIPAL                                  ');
			WRITELN('');
			WRITELN('                     1. Rechercher un client');
			WRITELN('                     2. Recherche par numero de client');
			WRITELN('                     3. Recherche par numero de compte');
			WRITELN('                     4. Creer un client');
			WRITELN('                     5. Afficher tous les clients');
			WRITELN('                     6. Afficher tous les comptes');
			WRITELN('                     7. Bouclement annuel');
			WRITELN('                     8. Quitter');
			WRITELN('');
			WRITE('                     Entrer votre choix: ');
			READLN(choixMenu);
			WRITELN('');

			CASE (choixMenu) OF
				'1':
					begin					
						ID_Client:=rechercheClient(tabClient,'','');
						client(ID_Client,tabClient);
					end;
				'2':
					begin
						WRITE('                     Entrer le numero de client rechercher: ');
						READLN(ID_Client);
						client(ID_Client,tabClient);
					end;
				'3':
					begin
						WRITE('                     Entrer le numero de compte rechercher: ');
						READLN(ID_Compte);
						rechercheCompte(tabClient,ID_Compte,IndiceClient,IndiceCompte);
						IF(IndiceClient<>-1)THEN
							CompteClient(tabClient,IndiceClient,IndiceCompte)
						 else
							Begin
								WRITELN('           Le compte n''a pas ete trouve');
								WRITELN('           Taper ENTER pour continuer');
								READLN();  // Permet de figer l'ecran.
							End;
					end;
				'4': 
					begin
						creationClient(ID_Client,tabclient);
					end;
				'5': 
					begin						
						listing(tabClient);
						WRITELN('Taper ENTER pour continuer');
						READLN();  // Permet de figer l'ecran.
					end;
				'6': 
					begin
						listingComptesAllClients(tabClient);
						WRITELN('Taper ENTER pour continuer');
						READLN();  // Permet de figer l'ecran.
					end;
				'7': 
					begin
						bouclementAnnuelClients(tabClient);
						WRITELN('Taper ENTER pour continuer');
						READLN();  // Permet de figer l'ecran.
					end;
				'8': 
					begin
						EXIT := TRUE;
					end;
				
			end;
		End;
END.	
